package org.example.wc

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark02_WordCount {

  def main(args: Array[String]): Unit = {
    // 1.建立和Spark框架的连接
//    System.setProperty("hadoop.home.dir", "E:\\BigData\\Spark\\WindowsDep\\hadoop-3.1.0")
    // Spark的上下文对象
    // 本地环境 local
    var sparkConf = new SparkConf().setMaster("local").setAppName("WordCount");
    var sc = new SparkContext(sparkConf);

    // 一个分析单词的出现次数的小案例
    // 将 hello word
    //2.执行业务操作
    // 读取数据
    var lines:RDD[String] = sc.textFile("./{datas/*}")

    //将一行数据进行拆分，形成一个一个的单词，分词
    //hello world -> hello world hello world
    // 扁平化
    var words = lines.flatMap(_.split(" "));

    // 将单词进行分组，方便统计
    // (hello hello,hello)  (world,world)
    var wordGroup:RDD[(String,Iterable[String])] = words.groupBy(word=>word)
    //分组后进行转换
    // (hello,3) (world,2)
    var wordToCount = wordGroup.map{
      case (word,list)=>{
        (word,list.size)
      }
    }

    var array:Array[(String,Int)] = wordToCount.collect()
    array.foreach(println)
    //3.关闭连接
    sc.stop();

  }

}
